草庐IT

iOS AVCaptureVideoDataOutput 占用太多内存

全部标签

sql-server - SSIS 使用过多内存将大型 (40GB+) XML 文件加载到 SQL Server 表中

我需要使用SSIS将一个大型(40GB+)XML文件加载到SQLServer2012数据库表中。我遇到问题是因为SSIS似乎试图将整个文档加载到内存中而不是流式传输它。这是我的SSIS包的更多详细信息。我创建了一个具有以下属性的XML源:数据访问模式:来自变量的XML文件(但可以是XML文件位置)变量名:指定我电脑中XML文件路径的变量。XSD位置:定义正在读取的XML的XSD的路径。XML结构简单,只有3个层级:带有标题信息的根元素一级定义对象集合定义单个对象的叶级别(每个对象都有一组固定的字段)我需要为每个叶元素插入一个数据库记录,从更高层次重复字段。换句话说,我需要展平XML层次

c# - 为什么我的新 XmlTextReader(stream) 以数兆字节读入内存而不是正确地流式传输?

当以XML格式流式传输到XmlReader时,出现内存不足异常!查看内存分析器,我们可以看到它一遍又一遍地调用StringBuilder.Append,导致大量128KB缓冲区填满所有内存。这与“流”完全相反。它不应加载超过一个4KB的缓冲区。 最佳答案 通读.NET源代码,发现有一种“v1compat”模式确实会超前读取,违背了流式传输的目的。那么,如何避免让它进入那种愚蠢的模式呢?事实证明,调用“newXmlTextReader(stream)”和“XmlReader.Create(stream)”之间存在巨大差异,Micros

c# - 将 XML 写入内存而不是磁盘

如何将FORXMLPATH存储过程的结果写入内存而不是磁盘文件?目前的做事方式:privatevoidGetChartData(stringOC_Ttl1,stringOC_Ttl2,stringOC_OL31){OC_Ttl_1=OC_Ttl1;OC_Ttl_2=OC_Ttl2;OC_OL3_1=OC_OL31;//OutputxmlDataSetorgDataSet=newDataSet();orgDataSet.ReadXml(cmd_Org.ExecuteXmlReader(),XmlReadMode.Auto);orgDataSet.WriteXml("InputXMLFil

.net - XmlDocument缓存内存使用

我们发现在使用XmlDocument的.NETWeb应用程序中内存使用率非常高。一个小的(~5MB)XML文档被加载到XmlDocument对象中并存储在HttpContext.Cache中,以便在每次加载页面时轻松查询和XSLT转换。XML在磁盘上定期修改,因此缓存依赖于文件。这样的应用程序似乎使用了数百兆字节的RAM。我已经尝试在每次请求开始时请求垃圾收集,这使RAM使用率大大降低,但我无法想象这是一个好习惯。对于我们如何以更低的RAM使用量实现相同的目标,有没有人有任何建议? 最佳答案 我的两分钱。..如果内存使用量根据XML

java - 占用空间小的 XML 库

由于配置的复杂性增加,我想为我的库的配置文件引入XML,并替换现有的属性文件。我愿意使用XSD公开描述XML结构(因此该结构已记录并可以进行版本控制)如果可能,从该XSD生成Java源代码以进行解码(类似于JAXB/XJC)。另一种简单的访问方法也可以(例如简单的XPath表达式)占用空间小,很少甚至没有额外的依赖如果足迹不是问题,我会选择JAXB马上。是否有类似的库占用空间更小?编辑:所谓占用空间,我指的不是消耗的内存,而是库的“大小”(以KB/类数表示)。我希望我相当简单的用例能够被一个包含大约5-6个类的库覆盖。我不需要JAXB的全部功能。 最佳答案

javascript - 多少外部数据太多了? (XML 或 JSON)

我之前编写过纯JavaScript前端,并开始注意到在处理大量数据存储时性能会下降。我尝试过使用xml和json,但在这两种情况下,浏览器都需要处理很多内容。这提出了我的问题,多少算太多? 最佳答案 你不可能知道,不完全知道,也不总是知道。你可以做出一个很好的猜测。这取决于浏览器、操作系统、RAM、CPU、当时正在运行的其他设备、它们的连接速度、它们正在传输的其他设备等。找出您预期普通用户会遇到的几种情况,然后进行测试。添加各种最佳、最差和有趣的(例如手机、平板电脑)案例。当然,您可以根据您的具体案例应用经验并进行推断,答案会在未来

sql-server - SSIS XML XSLT 任务内存不足

我正在BIDS2005中开发一个包,该包以针对非常大的输入文件的XML(XSLT)任务开始,并不断收到以下错误[XMLTask]Error:Anerroroccurredwiththefollowingerrormessage:"Exceptionoftype'System.OutOfMemoryException'wasthrown.我的工作站是Win764位-16GIGRam-i78核处理器3.5gHZ。我在此过程中运行任务管理器,它在运行期间最多只能使用大约7.5gigs的ram,直到它因错误而崩溃。我正在针对我的本地SQL2008R264位实例运行。该包在BIDS中配置为以64

c# - 加载xml文件到内存

我需要在内存中加载一个xml文件,以便我可以从不同的表单多次访问它。xml格式如下:Name1Value1Type1Name2Value2Type2我不想使用数据库来存储变量。还有其他方法可以将数据存储在内存中吗?现在我正在为每张幻灯片和流阅读器使用一个txt文件,我确信这不是最佳选择。编辑:我添加了这段代码,但我是否能够在不再次读取xml文件的情况下每次都获取幻灯片?varslides=fromsinXElement.Load("slides.xml").Elements("Slide")selects;foreach(varslideinslides){//code}

c# - 如何在不将整个文件加载到内存的情况下更新 xml 文件

我们如何在不将xml文件完全加载到内存的情况下更新它。在下面的代码中,我想浏览每个父节点注释并更新to节点的值。我们如何使用C#实现此目的。我必须根据代码中的一些其他计算更新to字段。JaniToveJohnDoe 最佳答案 您可以使用XmlReader和XmlWriter的流式处理方法,您只需从阅读器中写出除您需要更改的部分之外的所有内容。ScottHanselman有一个blog使用此技术发布。 关于c#-如何在不将整个文件加载到内存的情况下更新xml文件,我们在StackOverf

C# XSLT 转换内存不足

全部,我有以下使用XSLT转换XML文档的代码。问题是当XML文档大约为12MB时,C#内存不足。有没有一种不同的方法可以在不消耗那么多内存的情况下进行转换?publicstringTransform(XPathDocumentmyXPathDoc,XslCompiledTransformmyXslTrans){try{varstm=newMemoryStream();myXslTrans.Transform(myXPathDoc,null,stm);varsr=newStreamReader(stm);returnsr.ReadToEnd();}catch(Exceptione){/